1. Field of the Invention
The present invention relates to a semiconductor memory circuit, and more particularly, to a method and device for writing data in a non-volatile memory circuit. Although the present invention is suitable for a wide scope of applications, it is particularly suitable for reducing data writing time in the non-volatile memory circuit.
2. Discussion of the Related Art
In general, a semiconductor memory circuit can be classified into two categories: a volatile memory circuit and a non-volatile memory circuit. Data in the volatile memory circuit can be erased and the memory circuit can be reprogrammed whereas data in the non-volatile memory circuit remains intact regardless of whether the memory circuit's power supply is removed.
The volatile memory circuit typically employs a random access memory (RAM). The non-volatile memory circuit typically employs a read only memory (ROM), an erasable and programmable read only memory (EPROM), or an electrically erasable and programmable read only memory (EEPROM).
In the non-volatile memory circuits, the ROM cannot be reprogrammed once data has already been stored therein. On the other hand, data in the EPROM and EEPROM can be erased and the EPROM and EEPROM can be programmed with new data. Writing data in the non-volatile memory circuit is executed by simultaneously inputting to the memory circuit an address and desired data.
A conventional method of writing data in a non-volatile memory circuit will now be described with reference to FIGS. 1A and 1B.
As illustrated in FIG. 1A, in step S1, an address is initialized. In step S1a, the memory space corresponding to the address is read. In step S2, it is determined if data is already written in the read memory space. If data is written in the read memory space, a blank signal is generated (step S3) to thereby exclude that memory space from available memory spaces for writing data. If no data is written in the memory space or after step S3, it is determined if the address is the last address of the memory, in step S4. If the address is not the last address, step S4a is executed by increasing the address by one and steps S1a-S4 are carried out again.
Next, a data writing operation is performed. Specifically, in step S5, the address is initialized as the initial address of the memory space. In order to write data in the memory space corresponding to the address, an iteration value is initialized in step S6. Unless the iteration value is initialized, the data writing operation will be repeated continuously. Therefore, the iteration value is initialized to thereby restrict the repeat-writing number. The data is then read out of the controller that contains the data. to be written to the memory, as shown in step S7. In step 8, the read-out data are written in the memory space corresponding to the address. The data writing operation takes a .mu.s unit of time. In step S9, it is determined if the data written in the memory space by the data writing operation is the same as the data read out of the controller. The operation of reading data out of the controller takes a .mu.s unit of time. When the written data is not the same as the read-out data, the data writing operation (step S8) and the data comparing/determining operation (step S9) are repeated until the current repeat writing number is the same as the predetermined repeat-writing number in steps S10 and S11. In step S10, if the current repeat writing number is the same as the predetermined repeat-writing number, a data writing operation error signal is generated. Such a data writing operation error may be the result of a defect of the memory cell.
In steps S12 and S13, the data is written in the blank memory at increasing addresses by repeating the operations of steps S6 to S11. After completing the writing operation of the entire data, the address is initialized again in step S14 in preparation for the following data verifying step.
In step S15, data written in the memory space corresponding to the address and the data contained in the controller is read out. In step S16, it is determined if the data is identical to each other. The data verifying operation is repeated up to the last address while increasing the address by one in steps S18 and S18a. If the data is not the same as each other in the comparing/determining operation (step S9), a verification error signal is generated in step S17. The writing data operation in the memory circuit is completed upon completion of the verifying step.
In the above mentioned conventional operation of writing data in a non-volatile memory circuit, it takes about 20 minutes to write 1 mega byte of data. However, the conventional data writing method has problems because the data are sequentially read out of the controller by the data unit and written in the memory space corresponding to the address. Since the operation is repeated for every address of the memory, and it takes .mu.s unit of time to write data corresponding to one address, the data writing operation takes a long time to complete.